<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
	<TITLE></TITLE>
	<META NAME="GENERATOR" CONTENT="BrOffice.org 2.4  (Win32)">
	<META NAME="AUTHOR" CONTENT="Karina Kieling">
	<META NAME="CREATED" CONTENT="20081004;20161900">
	<META NAME="CHANGEDBY" CONTENT="Karina Kieling">
	<META NAME="CHANGED" CONTENT="20081101;22015804">
	<STYLE TYPE="text/css">
	<!--
		@page { margin: 2cm }
		P { margin-bottom: 0.21cm }
		P.western { so-language: pt-BR }
	-->
	</STYLE>
</HEAD>
<BODY LANG="pt-BR" DIR="LTR">
<P STYLE="margin-bottom: 0cm; line-height: 150%; page-break-before: always">
</P>
<P STYLE="margin-bottom: 0cm; line-height: 150%"></P>
<P STYLE="margin-bottom: 0cm; line-height: 150%"><FONT SIZE=3><B>GRAM&Aacute;TICAS
E LINGUAGENS LIVRES DE CONTEXTO</B></FONT></P>
<P CLASS="western"><BR><BR>
</P>
<P CLASS="western" ALIGN=JUSTIFY STYLE="line-height: 150%">	Gram&aacute;ticas
livres de contexto (GLC), como classificadas por Chomsky, s&atilde;o
aquelas que definem linguagens livres de contexto, que compreendem a
maioria das <A HREF="linguagens_programacao.html">linguagens de
programa&ccedil;&atilde;o</A> existentes. Elas definem linguagens que
n&atilde;o podem ser representadas com <A HREF="expressoes_regulares.html">express&otilde;es
regulares</A>, como encadeamento de abertura e fechamento de
par&ecirc;nteses (HOPCROFT; ULLMAN; MOATWANI, 2003).</P>
<P CLASS="western" ALIGN=JUSTIFY STYLE="line-height: 150%">	A sintaxe
de uma linguagem define a sua estrutura hier&aacute;rquica, e pode
ser representada por gram&aacute;ticas livres de contexto. Gram&aacute;ticas
apresentam vantagens tanto para os projetistas de uma linguagem
quanto para desenvolvedores de compiladores, entre elas (AHO; SETHI;
ULLMAN, 1995): 
</P>
<OL>
	<LI><P CLASS="western" STYLE="line-height: 150%">Uma gram&aacute;tica
	proporciona uma especifica&ccedil;&atilde;o sint&aacute;tica
	precisa, e ao mesmo tempo f&aacute;cil de entender, de uma
	linguagem;</P>
	<LI><P CLASS="western" STYLE="line-height: 150%">&Eacute; poss&iacute;vel
	gerar analisadores sint&aacute;ticos automaticamente a partir de
	certas gram&aacute;ticas; 
	</P>
	<LI><P CLASS="western" STYLE="line-height: 150%">Erros, como
	ambig&uuml;idade, por exemplo, podem ser encontrados de maneira
	automatizada atrav&eacute;s da defini&ccedil;&atilde;o da linguagem
	utilizando gram&aacute;ticas;</P>
	<LI><P CLASS="western" STYLE="line-height: 150%">As linguagens podem
	ser facilmente aprimoradas quando j&aacute; existe uma implementa&ccedil;&atilde;o
	de uma linguagem baseada em uma gram&aacute;tica.</P>
</OL>
<P CLASS="western" STYLE="line-height: 150%">	Gram&aacute;ticas s&atilde;o
a forma mais utilizada, mais flex&iacute;vel e mais eficaz de se
representar as linguagens, principalmente as livres de contexto.</P>
<P CLASS="western" STYLE="line-height: 150%"><BR><BR>
</P>
<P STYLE="margin-bottom: 0cm; font-weight: medium; line-height: 150%">
COMPONENTES DE UMA GLC</P>
<P CLASS="western"><BR><BR>
</P>
<P CLASS="western" ALIGN=JUSTIFY STYLE="line-height: 150%">	Uma GLC
pode ser definida como G = {N, T, P, S}, e suas componentes s&atilde;o:
</P>
<OL>
	<LI><P CLASS="western" ALIGN=JUSTIFY STYLE="line-height: 150%">um
	conjunto de terminais (T): define as strings da linguagem definida
	pela gram&aacute;tica;</P>
	<LI><P CLASS="western" ALIGN=JUSTIFY STYLE="line-height: 150%">um
	conjunto de n&atilde;o-terminais (N): define as vari&aacute;veis que
	podem representar diferentes seq&uuml;&ecirc;ncias de terminais.
	&ldquo;Cada vari&aacute;vel representa uma linguagem, isto &eacute;,
	um conjunto de strings&rdquo; (HOPCROFT; ULLMAN; MOTWANI, 2003, p.
	182);</P>
	<LI><P CLASS="western" ALIGN=JUSTIFY STYLE="line-height: 150%">s&iacute;mbolo
	inicial (S): vari&aacute;vel que representa a linguagem que est&aacute;
	sendo definida;</P>
	<LI><P CLASS="western" ALIGN=JUSTIFY STYLE="line-height: 150%">conjunto
	de produ&ccedil;&otilde;es ou regras (P): representam a defini&ccedil;&atilde;o
	recursiva de uma linguagem, sendo formada por uma vari&aacute;vel,
	no lado esquerdo, e uma seq&uuml;&ecirc;ncia de s&iacute;mbolos
	terminais ou n&atilde;o-terminais do lado direito do s&iacute;mbolo
	de produ&ccedil;&atilde;o, que varia de acordo com a forma de
	representa&ccedil;&atilde;o da gram&aacute;tica.</P>
</OL>
<P CLASS="western" ALIGN=JUSTIFY STYLE="line-height: 150%"><BR><BR>
</P>
<P CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0cm; line-height: 150%">
<IMG SRC="glc_llc_html_m637a0871.gif" ALIGN=MIDDLE> <A HREF="Indice.html">Voltar
&Iacute;ndice</A></P>
<P CLASS="western" STYLE="margin-left: 1.27cm"><BR><BR>
</P>
</BODY>
</HTML>